package mc0101.mccache.holder;


import mc0101.mccache.entity.SysParm;
import mc0101.mccache.util.RemcParmCache;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public final class SysParmHolder {


    /**
     * 获取系统参数列表
     * @return		系统参数列表
     */
    public static List<SysParm> getSysParmList(){
        return RemcParmCache.getParamList(SysParm.class);
    }

    /**
     * 根据参数类型和参数key获取系统参数对象
     * @return		系统参数对象，如果系统参数Map为空则返回空，如果传入参数任一为空，则返回空，如找不到则返回空
     */
    public static SysParm getSysParmByParmTypAndParmKey(String parmTyp,String parmKey){
        if(parmTyp == null || parmKey == null) {
            return null;
        }

        Map<String, Object> filter = new HashMap<>();
        filter.put("parmTyp", parmTyp);
        filter.put("parmKey", parmKey);
        return RemcParmCache.getParamObject(SysParm.class, filter);
    }

    /**
     * 根据参数类型和参数key获取系统参数值
     * @return		系统参数值，如果找不到对应的系统参数对象则返回空
     */
    public static String getSysParmValueByParmTypAndParmKey(String parmTyp,String parmKey){
        SysParm sysParm = getSysParmByParmTypAndParmKey(parmTyp,parmKey);
        if(sysParm == null)
            return null;
        return sysParm.getParmVal();
    }

    /**
     * 根据参数类型查询系统参数列表，如果parmTyp为空，则返回sysParmList
     * @param parmTyp
     * @return
     */
    public static List<SysParm> getSysParmListByParmTyp(String parmTyp){
        parmTyp = !"".equals(parmTyp) ? parmTyp : null;

        Map<String, Object> filter = new HashMap<>();
        filter.put("parmTyp", parmTyp);
        return RemcParmCache.getParamList(SysParm.class, filter);
    }

}